import json
import numpy as np
import os
import pandas as pd
import plotly.express as px
import plotly
plotly.offline.init_notebook_mode()
def get_mean_history(histories):
return np.mean(histories, axis=0)
def get_std_history(histories):
return np.std(histories, axis=0)
problem = "Griewank"
path = f"./{problem}/results"
dict_for_show_50_Griewank = dict()
params_list_50 = []
history_list_50 = []
iteration_list_50 = []
std_list_50 = []
dict_for_show_100_Griewank = dict()
params_list_100 = []
history_list_100 = []
iteration_list_100 = []
std_list_100 = []
for filename in os.listdir(path):
full_path = path + "/" + filename
with open(full_path) as file:
results = json.load(file)
if results["number_of_variables"] == 50:
params = f'ps={results["population_size"]}_ss={results["selection_size"]}_m={results["mutation"]}_mp={results["mutation_probability"]}_cr={results["clone_rate"]}_rc={results["random_cells_number"]}'
iteration_num = len(results['results'][0])
params_list_50 += [params]*iteration_num
history_list_50 += list(get_mean_history(results['results']))
iteration_list_50 += range(iteration_num)
std_list_50 += list(get_std_history(results['results']))
if results["number_of_variables"] == 100:
params = f'ps={results["population_size"]}_ss={results["selection_size"]}_m={results["mutation"]}_mp={results["mutation_probability"]}_cr={results["clone_rate"]}_rc={results["random_cells_number"]}'
iteration_num = len(results['results'][0])
params_list_100 += [params]*iteration_num
history_list_100 += list(get_mean_history(results['results']))
iteration_list_100 += range(iteration_num)
std_list_100 += list(get_std_history(results['results']))
dict_for_show_100_Griewank.update({'params': params_list_100,
'mean max fitness': history_list_100,
'iteration': iteration_list_100,
'std': std_list_100})
dict_for_show_50_Griewank.update({'params': params_list_50,
'mean max fitness': history_list_50,
'iteration': iteration_list_50,
'std': std_list_50})
pd.options.plotting.backend = "plotly"
df_100_Griewank = pd.DataFrame(dict_for_show_100_Griewank)
fig = px.line(df_100_Griewank, x="iteration", y="mean max fitness", color='params',
log_y=True, title="Griewank 100") # error_y="std",
fig.show()
pd.options.plotting.backend = "plotly"
df_50_Griewank = pd.DataFrame(dict_for_show_50_Griewank)
fig = px.line(df_50_Griewank, x="iteration", y="mean max fitness", color='params',
log_y=True, title="Griewank 50") # error_y="std",
fig.show()
problem = "Griewank"
path = f"./{problem}/results_elite"
dict_for_show_50_Griewank_elite = dict()
params_list_50 = []
history_list_50 = []
iteration_list_50 = []
std_list_50 = []
dict_for_show_100_Griewank_elite = dict()
params_list_100 = []
history_list_100 = []
iteration_list_100 = []
std_list_100 = []
for filename in os.listdir(path):
full_path = path + "/" + filename
if "ipynb_checkpoints" in full_path:
continue
with open(full_path) as file:
results = json.load(file)
if results["number_of_variables"] == 50:
params = f'ps={results["population_size"]}_ss={results["selection_size"]}_mutation={results["push"]:.2f},{results["pull"]:.2f},{results["random"]:.2f}_mp={results["mutation_probability"]}_cr={results["clone_rate"]}_rc={results["random_cells_number"]}'
iteration_num = len(results['results'][0])
params_list_50 += [params]*iteration_num
history_list_50 += list(get_mean_history(results['results']))
iteration_list_50 += range(iteration_num)
std_list_50 += list(get_std_history(results['results']))
if results["number_of_variables"] == 100:
params = f'ps={results["population_size"]}_ss={results["selection_size"]}_mutation={results["push"]:.2f},{results["pull"]:.2f},{results["random"]:.2f}_mp={results["mutation_probability"]}_cr={results["clone_rate"]}_rc={results["random_cells_number"]}'
iteration_num = len(results['results'][0])
params_list_100 += [params]*iteration_num
history_list_100 += list(get_mean_history(results['results']))
iteration_list_100 += range(iteration_num)
std_list_100 += list(get_std_history(results['results']))
dict_for_show_100_Griewank_elite.update({'params': params_list_100,
'mean max fitness': history_list_100,
'iteration': iteration_list_100,
'std': std_list_100})
dict_for_show_50_Griewank_elite.update({'params': params_list_50,
'mean max fitness': history_list_50,
'iteration': iteration_list_50,
'std': std_list_50})
pd.options.plotting.backend = "plotly"
df_100_Griewank_elite = pd.DataFrame(dict_for_show_100_Griewank_elite)
fig = px.line(df_100_Griewank_elite, x="iteration", y="mean max fitness", color='params', log_y=True, title="Griewank Elite 100") # error_y="std",
fig.show()
pd.options.plotting.backend = "plotly"
df_50_Griewank_elite = pd.DataFrame(dict_for_show_50_Griewank_elite)
fig = px.line(df_50_Griewank_elite, x="iteration", y="mean max fitness", color='params',
log_y=True, title="Griewank Elite 50") # error_y="std",
fig.show()
df_100_Griewank_sorted = df_100_Griewank.sort_values(by=["iteration", "mean max fitness"], ascending=[False, True])
df_100_Griewank_elite_sorted = df_100_Griewank_elite.sort_values(by=["iteration", "mean max fitness"], ascending=[False, True])
df_50_Griewank_sorted = df_50_Griewank.sort_values(by=["iteration", "mean max fitness"], ascending=[False, True])
df_50_Griewank_elite_sorted = df_50_Griewank_elite.sort_values(by=["iteration", "mean max fitness"], ascending=[False, True])
best_100_Griewank = list(df_100_Griewank_sorted["params"][:3])
best_100_Griewank_elite = list(df_100_Griewank_elite_sorted["params"][:3])
best_50_Griewank = list(df_50_Griewank_sorted["params"][:3])
best_50_Griewank_elite = list(df_50_Griewank_elite_sorted["params"][:3])
dict_for_show_50_Griewank_comp = dict()
params_list_50 = []
history_list_50 = []
iteration_list_50 = []
std_list_50 = []
dict_for_show_100_Griewank_comp = dict()
params_list_100 = []
history_list_100 = []
iteration_list_100 = []
std_list_100 = []
problem = "Griewank"
path = f"./{problem}/results_elite"
for filename in os.listdir(path):
full_path = path + "/" + filename
if "ipynb_checkpoints" in full_path:
continue
with open(full_path) as file:
results = json.load(file)
if results["number_of_variables"] == 50:
params = f'ps={results["population_size"]}_ss={results["selection_size"]}_mutation={results["push"]:.2f},{results["pull"]:.2f},{results["random"]:.2f}_mp={results["mutation_probability"]}_cr={results["clone_rate"]}_rc={results["random_cells_number"]}'
if params in best_50_Griewank_elite:
iteration_num = len(results['results'][0])
params_list_50 += [params + "_elite"]*iteration_num
history_list_50 += list(get_mean_history(results['results']))
iteration_list_50 += range(iteration_num)
std_list_50 += list(get_std_history(results['results']))
if results["number_of_variables"] == 100:
params = f'ps={results["population_size"]}_ss={results["selection_size"]}_mutation={results["push"]:.2f},{results["pull"]:.2f},{results["random"]:.2f}_mp={results["mutation_probability"]}_cr={results["clone_rate"]}_rc={results["random_cells_number"]}'
if params in best_100_Griewank_elite:
iteration_num = len(results['results'][0])
params_list_100 += [params + "_elite"]*iteration_num
history_list_100 += list(get_mean_history(results['results']))
iteration_list_100 += range(iteration_num)
std_list_100 += list(get_std_history(results['results']))
dict_for_show_100_Griewank_comp.update({'params': params_list_100,
'mean max fitness': history_list_100,
'iteration': iteration_list_100,
'std': std_list_100})
dict_for_show_50_Griewank_comp.update({'params': params_list_50,
'mean max fitness': history_list_50,
'iteration': iteration_list_50,
'std': std_list_50})
problem = "Griewank"
path = f"./{problem}/results"
for filename in os.listdir(path):
full_path = path + "/" + filename
with open(full_path) as file:
results = json.load(file)
if results["number_of_variables"] == 50:
params = f'ps={results["population_size"]}_ss={results["selection_size"]}_m={results["mutation"]}_mp={results["mutation_probability"]}_cr={results["clone_rate"]}_rc={results["random_cells_number"]}'
if params in best_50_Griewank:
iteration_num = len(results['results'][0])
params_list_50 += [params]*iteration_num
history_list_50 += list(get_mean_history(results['results']))
iteration_list_50 += range(iteration_num)
std_list_50 += list(get_std_history(results['results']))
if results["number_of_variables"] == 100:
params = f'ps={results["population_size"]}_ss={results["selection_size"]}_m={results["mutation"]}_mp={results["mutation_probability"]}_cr={results["clone_rate"]}_rc={results["random_cells_number"]}'
if params in best_100_Griewank:
iteration_num = len(results['results'][0])
params_list_100 += [params]*iteration_num
history_list_100 += list(get_mean_history(results['results']))
iteration_list_100 += range(iteration_num)
std_list_100 += list(get_std_history(results['results']))
dict_for_show_100_Griewank_comp.update({'params': params_list_100,
'mean max fitness': history_list_100,
'iteration': iteration_list_100,
'std': std_list_100})
dict_for_show_50_Griewank_comp.update({'params': params_list_50,
'mean max fitness': history_list_50,
'iteration': iteration_list_50,
'std': std_list_50})
pd.options.plotting.backend = "plotly"
df_100_Griewank_comp = pd.DataFrame(dict_for_show_100_Griewank_comp)
fig = px.line(df_100_Griewank_comp, x="iteration", y="mean max fitness", color='params',
log_y=True, title="Griewank 100 - Best 3 comparison") # error_y="std",
fig.show()
pd.options.plotting.backend = "plotly"
df_50_Griewank_comp = pd.DataFrame(dict_for_show_50_Griewank_comp)
fig = px.line(df_50_Griewank_comp, x="iteration", y="mean max fitness", color='params',
log_y=True, title="Griewank 50 - Best 3 comparison") # error_y="std",
fig.show()